NetworkClient
StockSharp.Fix.Native
UDP网络客户端的抽象基类.
继承自: BaseLogReceiver
实现: INetworkClient, ILogReceiver, ILogSource, IDisposable, IPacketProcessor
构造函数
NetworkClient
protected NetworkClient(IUdpDialect dialect, string name, MulticastSourceAddress address, Func<TNetworkClient, IMemoryOwner<byte>, List<Message>, bool> processMessage, IPacketReceiverFactory receiverFactory)
networkClient = NetworkClient(dialect, name, address, processMessage, receiverFactory)
初始化了 & ##NetworkClient+# 类的新实例 。
- dialect
- UDP方言.
- name
- 客户名.
- address
- 多播源地址.
- processMessage
- 处理收到消息的功能 。
- receiverFactory
- IPacketReceiverFactory
属性
FullMode
public PacketQueueFullModes FullMode { get; set; }
value = networkClient.FullMode
networkClient.FullMode = value
当包队列满了时的行为 。
MaxIncomingQueueSize
public int MaxIncomingQueueSize { get; }
value = networkClient.MaxIncomingQueueSize
在每个种子中, 在新包丢出之前, 最大缓冲收到的 UDP 包 。
MaxUdpDatagramSize
public int MaxUdpDatagramSize { get; }
value = networkClient.MaxUdpDatagramSize
最大 UDP 数据格大小 。
方法
AllocatePacket
public IMemoryOwner<byte> AllocatePacket(int size)
result = networkClient.AllocatePacket(size)
分配指定大小的包 。
- size
- 要分配的包大小 。
返回值: 包裹。
DisposePacket
public void DisposePacket(IMemoryOwner<byte> packet, string reason)
networkClient.DisposePacket(packet, reason)
以指定的理由处理数据包。
- packet
- 包裹。
- reason
- 具体原因.
ErrorHandler
public void ErrorHandler(Exception e, int numErrors, bool isFatal)
networkClient.ErrorHandler(e, numErrors, isFatal)
处理包处理过程中发生的错误 。
- e
- 遇到的例外情况。
- numErrors
- 出错数起.
- isFatal
- 显示错误是否致命。
ProcessNewPacket
public ValueTask<bool> ProcessNewPacket(IMemoryOwner<byte> packet, int length, CancellationToken cancellationToken)
result = networkClient.ProcessNewPacket(packet, length, cancellationToken)